Skip to content

fix(kmir): preserve symbolic parallel proving server selection#980

Draft
Stevengre wants to merge 8 commits intomasterfrom
jh/pr853-rebase-master
Draft

fix(kmir): preserve symbolic parallel proving server selection#980
Stevengre wants to merge 8 commits intomasterfrom
jh/pr853-rebase-master

Conversation

@Stevengre
Copy link
Contributor

@Stevengre Stevengre commented Mar 9, 2026

Summary

  • Keep HS-only-for-LLVM behavior opt-in via KMIR_HS_ONLY_SYMBOLS:
    • parse + deduplicate env symbols in KMIR.hs_only_symbols_from_env()
    • build booster command args in KMIR.kore_rpc_booster_command_from_env()
  • Only inject a custom kore-rpc-booster command when HS-only symbols are configured; otherwise keep the existing default RPC path.
  • In symbolic kompile_smir, when HS-only symbols are configured:
    • skip proof-specific llvm-kompile
    • keep generating the proof-specific Haskell definition
    • reuse the base llvm library from kdist (mir-semantics.llvm-library)
  • Keep parallel proving correct when no llvm library is available by selecting KoreServer instead of BoosterServer.
  • Add/adjust typing imports and unit coverage for the new behavior.

Testing

Local automated checks:

  • PYTHONPATH=kmir/src make check (pass)
  • uv run pytest -q src/tests/unit (pass)
  • Targeted regression pytest set (including previously failing cases) passed locally:
    • test_exec_smir[closure-call-llvm]
    • test_prove_rs[iter-eq-copied-take-dereftruncate]
    • total: 6 passed in 114.45s

Remote regression (zhaoji, accepted path):

  • Command: unset KMIR_HS_ONLY_SYMBOLS && ./run-proofs.sh -t 1800 test_process_get_account_data_size
  • Result: ProofStatus.PASSED, prove_exit_code=0, duration_seconds=145, nodes=15, pending=0, failing=0, stuck=0
  • This confirms kore-rpc-booster + --llvm-backend-library still passes on the existing path without forcing HS-only mode.

GitHub checks:

  • Run 22986255885 was rerun (attempt 2) after cancelling a stale long-running attempt.
  • Current status at update time: all non-integration checks are green, Integration Tests is still pending.

jberthold and others added 4 commits March 9, 2026 12:18
Use the Haskell-only symbolic path without advertising a mismatched LLVM
library, and fall back to KoreServer for parallel proof exploration when
no proof-specific LLVM library exists.

This removes the PR853 empty-response crash on symbolic proofs without
reintroducing symbolic llvm-kompile.
@Stevengre
Copy link
Contributor Author

Added TDD-structured follow-up commits for HS-only booster wiring:\n\n- test(kmir): add hs-only symbol env wiring unit tests\n- feat(kmir): pass KMIR_HS_ONLY_SYMBOLS to kore-rpc-booster\n\nRed/green evidence:\n- Red: -> 3 AttributeError failures before wiring\n- Green: same command -> 3 passed after wiring

@Stevengre
Copy link
Contributor Author

Correction with exact refs:\n\nAdded TDD-structured follow-up commits for HS-only booster wiring:\n- 0f208ed: test(kmir): add hs-only symbol env wiring unit tests\n- 6ef9fc9: feat(kmir): pass KMIR_HS_ONLY_SYMBOLS to kore-rpc-booster\n\nRed/green evidence command:\nuv --project kmir run -- pytest kmir/src/tests/unit/test_kmir_hs_only_symbols.py -q\n- red (before wiring): 3 AttributeError failures\n- green (after wiring): 3 passed

@Stevengre Stevengre changed the title fix(kmir): avoid booster for symbolic proof definitions fix(kmir): preserve symbolic parallel proving server selection Mar 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants